package com.tetris.rule;

import com.tetris.block.Block; // 添加这行导入语句

/**
 * 游戏规则接口，定义游戏的基本规则
 */
public interface GameRules {
    // 方块移动方向
    enum Direction {UP, DOWN, LEFT, RIGHT}

    // 旋转方向
    enum Rotation {CLOCKWISE, COUNTERCLOCKWISE}

    // 检查移动是否有效
    boolean isValidMove(int[][] grid, Block block, Direction direction);

    // 检查旋转是否有效
    boolean isValidRotation(int[][] grid, Block block, Rotation rotation);

    // 消除满行并返回消除的行数
    int clearLines(int[][] grid);

    // 计算分数
    int calculateScore(int linesCleared);

    // 检查游戏是否结束
    boolean isGameOver(int[][] grid);
}
